import socket
import os

# 1. 创建socket客户端链接(tcp)
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# 2. 和服务器建立连接
ip_port = ("127.0.0.1", 8080)
s.connect(ip_port)

# ---展示文件
for i, data in enumerate(os.listdir("./data")):
	print("序号", i + 1, "：", data)

# 3. 发送数据
while True:
	file_index = input("请输入你要下载的文件名序号:")
	try:
		file_index = int(file_index)
	except ValueError:
		print("请输入正确的格式(1/2/3...)")
		continue
	try:
		file_name = os.listdir("./data")[file_index - 1]
		break
	except IndexError:
		print("不存在该文件")

s.send(file_name.encode("utf-8"))

with open(f"./data/{file_name}", 'wb') as file:
	while True:
		# 4. tcp里使用recv获取数据,1024:每次读取数据字节大小
		content = s.recv(1024)
		if not content:  # 如果没有值
			break
		file.write(content)

print("+" * 20, "下载完毕", "+" * 20)
# 5. 关闭连接
s.close()
